Review my code <3#271
Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces a new Coding Tracker .NET console application that stores coding sessions in SQLite (via Dapper) and provides an interactive Spectre.Console UI for CRUD operations, a live stopwatch session, and basic reporting.
Changes:
- Added a Spectre.Console-driven menu UI for viewing/adding/updating/deleting sessions, running a live session, and generating summary reports.
- Implemented configuration loading from
appsettings.jsonand a Dapper/SQLite data access layer. - Added project scaffolding and documentation (
README.md,DOCS.md), plus solution/project files and default configuration.
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| CodingTracker/UI/UserInterface.cs | Adds the interactive menu UI, live session stopwatch, reporting, and input helpers. |
| CodingTracker/Database/DatabaseManager.cs | Adds SQLite schema init and CRUD operations via Dapper. |
| CodingTracker/Config/AppConfig.cs | Loads connection string/date format from appsettings.json at startup. |
| CodingTracker/Models/CodingSession.cs | Defines the session model with computed Duration. |
| CodingTracker/Program.cs | Adds the app entry point: init DB then run UI. |
| CodingTracker/appsettings.json | Provides default connection string, DB path, and date format. |
| CodingTracker/CodingTracker.csproj | Adds .NET project configuration and package references. |
| CodingTracker/CodingTracker.slnx | Adds a solution container referencing the project. |
| CodingTracker/README.md | Documents features, requirements, running, configuration, and layout. |
| CodingTracker/DOCS.md | Provides a detailed explanation of architecture and data flow. |
| .gitignore | Ignores .claude. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| var start = DateTime.Now; | ||
| AnsiConsole.MarkupLine($"[green]Session started at {start.ToString(AppConfig.DateFormat)}.[/] Press any key to stop..."); | ||
|
|
||
| AnsiConsole.Live(new Markup("")) | ||
| .Start(ctx => | ||
| { | ||
| while (!Console.KeyAvailable) | ||
| { | ||
| ctx.UpdateTarget(new Markup($"Time: [yellow]{FormatDuration(DateTime.Now - start)}[/]")); | ||
| ctx.Refresh(); | ||
| Thread.Sleep(1000); | ||
| } | ||
| }); | ||
| Console.ReadKey(true); | ||
|
|
| <ItemGroup> | ||
| <None Update="appsettings.json"> | ||
| <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||
| </None> | ||
|
|
||
| </ItemGroup> |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
@young-the-tiny Project approved! 😄✅ And well done for completing the challenges! Great job adding the live stopwatch feature and a reports section with totals for all time, this week, and this month. Those are strong extras. 🥋And congratulations! You got your olive green belt!! 🟩🟩 Feedback 🔍️It's time to start adding unit/integration testing to your apps. You seem to have a good foundation of coding but in real life nothing significant gets built without proper automated testing. The earlier you learn to test your apps the better. You can see an intro article with a video tutorial here. ☕If you like our roadmap, please consider buying as a coffee. We appreciate your help 🙂 ✋🏻Looking forward to seeing your next projects! |
No description provided.